﻿/*
候选人 
Time Limit:200MS  Memory Limit:32768K

  
Description:
某部门需要民主选举主席，因此首先需要确定候选人。
候选人先按小组提名，只要不少于三分之二个小组提名，就可以做候选人，
当然咯，候选人的名字长度不能超过20，否则无资格担任主席职务了。 

Input:
每个小组开头是一个整数n，表示本组提名的候选人人数，
接下来是n个名字，他们被本组提名为候选人，每个名字中间无空格，
如果n为0，表示输入结束。 
Output:
只要不少于三分之二小组提名，就可以做候选人，输出这些候选人，
先按名字长度从短到长排列，若长度相同时，按字典序输出。每个名字占一行。 
Sample Input:
3 smith rob crick
5 daly crick adam burr wdfgfgggfhfghgfyyyyyyy
3 rob smith tom
0
Sample Output:
crick
smith
*/
#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;

bool compare(string s, string t)
{
	if (s.length() == t.length())
		return s < t;
	else
		return s.length() < t.length();
}
int main(int argc, char* argv[])
{
	map<string, unsigned> nominates;
	unsigned n;
	unsigned total = 0u;
	while (cin >> n && n)
	{
		++total;
		while (n--)
		{
			string nominate;
			cin >> nominate;
			if (nominates.end() == nominates.find(nominate))
			{
				nominates[nominate] = 1U;
			}
			else
			{
				++nominates[nominate];
			}
		}
	}
	vector<string> candidates;
	//candidates.assign(nominates.size());
	//reserve
	{
		for (map<string, unsigned>::iterator it = nominates.begin();
			it != nominates.end();
			++it)
		{
			if (2 * total <= 3 * (it->second))
			{
				candidates.push_back(it->first);
			}
		}
	}
	{
		sort(candidates.begin(), candidates.end(), compare);
		for (vector<string>::iterator it = candidates.begin();
			it != candidates.end();
			++it)
		{
			cout << *it << endl;
		}
	}


	return EXIT_SUCCESS;
}